lectures.alex.balgavy.eu

Lecture notes from university.
git clone git://git.alex.balgavy.eu/lectures.alex.balgavy.eu.git
Log | Files | Refs | Submodules

Vector (SIMD) processing & GPUs.html (2132B)


      1 <?xml version="1.0" encoding="UTF-8"?>
      2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      3 <html><head><link rel="stylesheet" href="sitewide.css" /><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/><meta name="exporter-version" content="Evernote Mac 6.13.1 (455785)"/><meta name="altitude" content="-0.3086079955101013"/><meta name="author" content="Alex Balgavy"/><meta name="created" content="2017-12-19 6:24:57 PM +0000"/><meta name="latitude" content="52.37365102548443"/><meta name="longitude" content="4.836238196735144"/><meta name="source" content="desktop.mac"/><meta name="updated" content="2017-12-20 8:08:10 PM +0000"/><title>Vector (SIMD) processing &amp; GPUs</title></head><body><div>many programs use loops to operate on vectors of data, so many instructions are executed</div><div>single-instruction multiple-data (SIMD) — use multiple ALUs to operate on multiple data in parallel using a single instruction (as long as operations performed in parallel are independent)</div><div>vector registers hold data for vector instructions — have number of elements L (vector length), determines number of operations that can be done in parallel (multiple ALUs)</div><div><br/></div><div><span style="font-weight: bold;">Vectorisation</span></div><div>in a high-level language, loops working with arrays of numbers are vectorisable if the operations on every pass are independent of all other passes</div><div>a vectorising compiler can recognise those loops and generate vector instructions</div><div>they’re used for stuff like computer graphics and digital signal processing</div><div><br/></div><div><b>GPUs (Graphics Processing Units)</b></div><div>their main purpose in life is to speed up calculations on a large number of floating-points</div><div>a large chip has hundreds of simple cores with floating-point ALUs to do a lot of work in parallel</div><div>a video card has both a GPU and a dedicated memory for it</div><div>they have a special instruction set and hardware architecture</div><div><br/></div></body></html>